/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managertelaCadastros;

import classes.Classificacao;
import classes.Fabricante;
import classes.Produto;
import dao.DaoFabricante;
import dao.DaoProduto;
import java.util.List;
import managerPesquisa.managerPesquisaClassificacao;
import managerPesquisa.managerPesquisaFabricante;
import telaCadastros.CadProduto;

/**
 *
 * @author fumio
 */
public final class managerCadProduto implements interfaceManager {

    private Produto produto;
    private static CadProduto cadProduto;
    private DaoProduto daoproduto = new DaoProduto();
    private Classificacao classificacao;
    private Fabricante fabricante;

    public managerCadProduto(Produto cproduto) {
        cadProduto = CadProduto.getInstance(this);
        if (cproduto == null) {
            produto = new Produto();
        } else {
            produto = cproduto;
            getData();
        }

        cadProduto.setVisible(true);
    }

    @Override
    public boolean salvar() {
        boolean resultado;
        try {
            if (produto == null) {
                produto = new Produto();
            }

            if (setData()) {
                daoproduto.salvar(produto);
            }

            resultado = true;

        } catch (Exception e) {
            System.out.println(e.getMessage());
            resultado = false;
        }

        return resultado;
    }

    @Override
    public List carregar() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean setData() {
        boolean response;
        try {
            produto.setProduto(cadProduto.edtProduto.getText());
            produto.setClassificacao(classificacao);
            produto.setFabricante(fabricante);
            produto.setEstMinimo(Integer.parseInt(cadProduto.edtEstoqueMinimo.getText()));
            produto.setPrecoCusto(Double.parseDouble(cadProduto.edtPrecoCusto.getText()));
            produto.setPrecoVenda(Double.parseDouble(cadProduto.edtPrecoVenda.getText()));
            produto.setQuantidade(Integer.parseInt(cadProduto.edtQuantidade.getText()));
            response = true;
        } catch (Exception e) {
            response = false;
        }
        return response;
    }

    @Override
    public void getData() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void buscaFabricante(Integer idFabricante) {
        if (idFabricante > 0) {
            DaoFabricante daofabricante = new DaoFabricante();
            List<Fabricante> lista = daofabricante.consultar(idFabricante.toString(), "Código");
            fabricante = (Fabricante) lista;
            cadProduto.edtCodFabricante.setText(fabricante.getIdFabricante().toString());
            cadProduto.edtFabricante.setText(fabricante.getFabricante());

        }


    }

    public void buscaClassificacao(Integer idClassificacao) {
        if (idClassificacao > 0) {
            managerPesquisaClassificacao managerPesquisaClassificacao;
            managerPesquisaClassificacao = new managerPesquisaClassificacao();
            classificacao = managerPesquisaClassificacao.selecionaClassificacao();
            cadProduto.edtCodClassificacao.setText(classificacao.getIdClassificacao().toString());
            cadProduto.edtClassificacao.setText(classificacao.getClassificacao().toString());

        }

    }

    public void pesquisaFabricante() {
        managerPesquisaFabricante managerPesquisaFabricante;
        managerPesquisaFabricante = new managerPesquisaFabricante();
        fabricante = managerPesquisaFabricante.managerPesquisaFabricante();
        cadProduto.edtCodFabricante.setText(fabricante.getIdFabricante().toString());
        cadProduto.edtFabricante.setText(fabricante.getFabricante());
    }

    public void pesquisaClassificacao() {
        managerPesquisaClassificacao managerPesquisaClassificacao;
        managerPesquisaClassificacao = new managerPesquisaClassificacao();
        classificacao = managerPesquisaClassificacao.managerPesquisaClassificacao();
        cadProduto.edtCodClassificacao.setText(classificacao.getIdClassificacao().toString());
        cadProduto.edtClassificacao.setText(classificacao.getClassificacao().toString());

    }
}
